<?php
/**
 * KumbiaPHP web & app Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://wiki.kumbiaphp.com/Licencia
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@kumbiaphp.com so we can send you a copy immediately.
 *
 * Paginador "punbb" para aplicaciones
 *
 * Parametros del paginador:
 *   page: objeto obtenido al invocar al paginador
 *   show: numero de paginas que se mostraran en el paginador
 *   url: url para la accion que efectua la paginacion, por defecto "module/controller/page/"
 *        y se envia por parametro el numero de pagina
 *
 * @category   Kumbia
 * @package    Partials
 * @copyright  Copyright (c) 2005-2010 Kumbia Team (http://www.kumbiaphp.com)
 * @license    http://wiki.kumbiaphp.com/Licencia     New BSD License
 */
if (!isset($url)) {
    extract(Router::get(), 0);
    $url = "$controller/$action";
    if ($module) {
        $url = "$module/$url";
    }
}

if (!isset($show)) {
    $show = 10;
}

$half = floor($show / 2);

//Calculando el inicio de paginador centrado
if ($page->current <= $half) {
    $start = 1;
} elseif (($page->total - $page->current) < $half) {
    $start = $page->total - $show + 1;
    if ($start < 1)
        $start = 1;
} else {
    $start = $page->current - $half;
}
?>

<div class="pagination">
    <ul>
        <?php
        if ($page->prev) {
            echo '<li class="prev">', Html::link("$url/$page->prev", 'Anterior', 'title="Ir a la pág. anterior"'), '</li>'; // Se coloca el link sin numero de pagina para la pagina 1
        } else {
            echo '<li class="prev  disabled"><a title="Ir a la pág. anterior" href="#">Anterior</a></li>';
        }
        ?>
        <?php
        if ($start == 1) { //se coloca el link sin numero de pagina para la pagina 1
            $start = 2;
            $show -= 1;
            echo $page->current == 1 ? "<li class=\"active\"><a href='#'>1</a><li>" : '<li>' . Html::link("$url/", '1') . '</li>';
        } elseif ($start > 1) {
            echo '<li>', Html::link("$url/", '1'), '</li>';
        }
        if ($start > 2):
        ?>
            <li><a href="#">...</a></li>
        <?php endif; ?>

        <?php for ($i = $start; $i <= $page->total && $i < ($start + $show); $i++): ?>
        <?php echo $i == $page->current ? "<li class=\"active\"><a href='#'>$i</a><li>" : '<li>' . Html::link("$url/$i", $i) . '</li>'; ?>
        <?php endfor; ?>

        <?php if ($page->total > $i): ?>
                    <li><a href="#">...</a></li>
        <?php echo '<li>', Html::link("$url/$page->total/", $page->total), '</li>'; ?>
        <?php elseif ($i == $page->total): ?>
        <?php echo '<li>', Html::link("$url/$i/", $i), '</li>'; ?>
        <?php endif; ?>

        <?php
                        if ($page->next) {
                            echo '<li class="prev">', Html::link("$url/$page->next/", 'Siguiente', 'title="Ir a la pág. siguiente" class="nextprev"'), '</li>';
                        } else {
                            echo '<li class="prev disabled"><a title="Ir a la pág. siguiente" href="#">Siguiente</a></li>';
                        }
        ?>
    </ul>
</div>
